#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>
using namespace std;

//#pragma pack(4)
//
//class A
//{
//	double b;
//	char c;
//
//};
//
//int main()
//{
//	cout << sizeof(A) << endl;
//	return 0;
//}



//class Person
//{
//public:
//	friend void Print(Person p);
//	
//protected:
//	int _age = 10;
//	int _a = 20;
//
//};
//class Student : public Person
//{
//public:
//	friend void Print(Student s);
//
//protected:
//	int _grade = 0;
//};
//
//void Print(Person p)
//{
//	cout << p._age << endl;
//	cout << p._a << endl;
//}
//
//void Print(Student s)
//{
//	cout << s._age << endl;
//	cout << s._a << endl;
//}
//
//class Teacher
//{
//public:
//
//protected:
//	Person _p1;
//};
//
//
//int main()
//{
//	Person p;
//	Print(p);
//
//	Student s;
//	Print(s);
//
//	return 0;
//}


//class Person
//{
//public:
//	Person(int a = 1)
//		:_a(a)
//	{}
//
//	static int _age;
//protected:
//
//	int _a;
//
//};
//int Person::_age = 1;
//
//class Student : public Person
//{
//public:
//
//protected:
//	int _grade = 0;
//};
//
//int main()
//{
//	Person p1;
//	cout << p1._age << endl;
//
//	p1._age++;
//
//	Student s1;
//	cout << s1._age << endl;
//
//	return 0;
//}



//class Person
//{
//public:
//	Person(int a = 1)
//		:_a(a)
//	{}
//
//	int _a;
//
//};
//
//class Student :virtual public Person
//{
//public:
//protected:
//	int _grade = 0;
//};
//
//
//class Teacher :virtual public Person
//{
//public:
//
//protected:
//	int _t = 1;
//};
//
//class assistant : public Student, public Teacher
//{
//public:
//	void Print()
//	{
//		cout << _a << endl;
//		cout << _grade << endl;
//		cout << _t << endl;
//		cout << _ass << endl;
//	}
//private:
//	int _ass = 0;
//};
//
//int main()
//{
//	Person p1;
//
//	Student s1;
//
//	Teacher t1;
//
//	assistant a1;
//	a1._a = 5;
//	a1.Print();
//
//
//	cout << sizeof(p1) << endl;
//	cout << sizeof(s1) << endl;
//	cout << sizeof(t1) << endl;
//	cout << sizeof(a1) << endl;
//	return 0;
//}


//int main()
//{
//	int n = 0;
//	double d = 0;
//	cin >> n >> d;
//	
//	while (n--)
//	{
//
//	}
//
//
//
//	return 0;
//}

int a[10010];

int main()
{
	int n = 0;
	string q;
	cin >> n >> q;

	reverse(q.begin(), q.end());
	int f = q.find('.');
	q.erase(f, 1);

	int i = 0;
	for (i = 0; i < q.size(); i++)
	{
		a[i] = q[i] - '0';
	}

	int j = i;
	int z = 0;


	for (i = 0; i < n; i++)
	{
		for (z = 0; z < j; z++)
		{
			a[z] *= 2;
		}

		for (z = 0; z < j; z++)
		{
			a[z + 1] += a[z] / 10;
			a[z] %= 10;
		}

		if (a[z] > 0)
		{
			j++;
		}

	}

	if (f != EOF)
	{
		if (a[f - 1] >= 5)
		{
			a[f] += 1;
		}

		z = f;
		while (a[z] / 10)
		{
			a[z + 1] += a[z] / 10;
			a[z] %= 10;
			z++;
		}

		if (a[j] > 0)
		{
			j++;
		}
	}

	while (j - f > 0)
	{
		cout << a[j-1];
		j--;
	}




	return 0;
}